﻿// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
// for details on configuring this project to bundle and minify static web assets.


// 设置layout页面菜单项计数器
function SetLayoutCounter() {
    $.post("/Sample/GetMenuItemCounter", {
        //Type: type
    }, function (data) {
        $('#aSampleLogin').text(data.aSampleLogin);
        $('#aSampling').text(data.aSampling);
        $('#aReceiveSamples').text(data.aReceiveSamples);
        $('#aResultEntry').text(data.aResultEntry);
        $('#aExamineAndVerify').text(data.aExamineAndVerify);
        $('#qaExamineAndVerify').text(data.qaExamineAndVerify);
        $('#maExamineAndVerify').text(data.maExamineAndVerify);
    });
}

// layout 页面获取登录人姓名和日期信息
function GetLoginUser() {
    $.post("/Home/GetLoginUser", {
        //Type: type
    }, function (data) {
        $('#LoginUserName').text(data);
    });
}

// 获得登录用户所拥有的角色字符串
function GetUserRolesSt() {
    return $.post("/Home/GetUserRolesSt", {
        //Type: type
    }, function (data) {
        return data;
    });
}

// layout 页面 检查登录人是否有需要处理的提醒
function CheckRemind() {
    $.post("/Common/CheckRemind", {
        //Type: type
    }, function (data) {
        if (data == "true") {
            $("#layout-bellfill").show();
        } else {
            $("#layout-bell").show();
        }
    });
}

// 根据名称模糊查询全局记录，获得多条记录,用来绑定菜单项
function getGlobalsContainName(ulName, keyName) {
    $.post("\\Common\\getGlobalsContainName", {
        KyeName: keyName
    }, function (data) {
        $('#' + ulName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + ulName).append(data[i].description);
        }
    });
}

// 初始化“实验室”下拉列表框
function LoadSiteList(SelectName) {
    $.post("/Sample/GetSiteList", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i]));
        }
        //$('#' + SelectName).prepend(new Option(""));
        $('#' + SelectName).val("");
    });
}

// 根据选择的实验室加载“工作组”
// value 为默认选择的值，如果不提供则默认选择空白项
function LoadGroupList(SiteName, SelectName, value) {
    $.post("/Sample/GetWorkGroupList", {
        Site: SiteName
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].workGroup, data[i].id));
        }
        //$('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
        $('#' + SelectName).find("option:contains(" + value + ")").attr("selected", true); 
    });
}

// 获得所有工作组
function LoadAllGroupList(SelectName) {
    $.post("/Sample/GetWorkGroupList", {
        //Site: SiteName
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].workGroup, data[i].id));
        }
        $('#' + SelectName).prepend(new Option(""));
        $('#' + SelectName).val("");
    });
}

// 初始化“人员选择”下拉列表框
function LoadUsers(SelectName) {
    $.post("/UserManager/GetUserIdAndFullname", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].fullName, data[i].id));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 根据“工作组”，绑定组内成员
function LoadGroupUsers(SelectName, GroupId) {
    $.post("/Common/GetGroupUsers", {
        SiteGroupId: GroupId
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].fullName, data[i].id));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 初始化“设备类型”下拉列表框
function LoadEquipmentTypeList(SelectName) {
    $.post("/Eq/GetEquipmentTypeList", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i]));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 根据“设备类型”，绑定设备下拉列表框
function LoadEquipmentByType(SelectName, type) {
    $.post("/Eq/GetEquipmentIdsByType", {
        Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i]));
        }
        //$('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 加载“样品类型”，此处是指样品定义中的类型
function LoadSampleDefinitionClassification(SelectName) {
    $.post("GetSampleDefinitionClassification", {
        //Type: type  // 传递的参数，对应控制器里的参数
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].classification));
        }
        $('#' + SelectName).prepend(new Option("全部"));
        $('#' + SelectName).val("");
    });
}

// 初始化“样品组类型”下拉列表框
function LoadSampleGroupTypeList(SelectName) {
    $.post("/Sample/GetSampleGroupType", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].type));
        }
        $('#' + SelectName).prepend(new Option("全部"));
        $('#' + SelectName).val("");
    });
}

function LoadSampleGroupList(SelectName, type) {
    $.post("/Sample/GetSampleGroupList", {
        Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].name, data[i].id));
        }
        //$('#' + SelectName).prepend(new Option("全部"));
        $('#' + SelectName).val("");
    });
}

// 初始化正在分析的项目的“批次号”下拉列表
function LoadBatchByResult(SelectName) {
    $.post("/Sample/GetRestltBatchIdList", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i]));
        }
        $('#' + SelectName).prepend(new Option(""));
        $('#' + SelectName).val("");
    });
}

// 初始化“供应商”下拉列表框, type 设备类型。设备管理页面绑定类型为“仪器设备”
function LoadSupplierList(SelectName, type) {
    $.post("/Common/SupplierBandToSelect", {
        Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].supplierName, data[i].supplierId));
        }
        //$('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 初始化“单位类型”下拉列表框
function LoadUnitType(SelectName) {
    $.post("\\Common\\GetUnitType", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].type));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

 // 根据单位类型，初始化“单位”下拉列表框
function LoadUnitByType(SelectName, UnitType) {
    $.post("\\Common\\GetUnitByTypeall", {
        Type: UnitType
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].code));
        }
    });
}

// 初始化“物料一级”下拉列表框
function LoadMaterialType1(SelectName) {
    $.post("\\Inv\\GetMaterialType1", {
        //Type: type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].type1));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 根据物料一级初始化“物料二级”下拉列表框
function LoadMaterialType2(SelectName, Type1) {
    $.post("\\Inv\\GetMaterialType2ByType1", {
        type1: Type1
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].type2));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 根据物料 一级、二级加载物料下拉列表框
function LoadMaterialCodeAndName(SelectName, Type1, Type2) {
    $.post("\\Inv\\GetMaterialCodeAndName", {
        type1: Type1,
        type2: Type2
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].name, data[i].code));
        }
        $('#' + SelectName).prepend(new Option("", ""));
        $('#' + SelectName).val("");
    });
}

// 根据区域位置类型获得位置列表
function GetLocationList(SelectName, Type) {
    $.post("\\Common\\GetLocationByType", {
        Type: Type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i][1]));
        }
        $('#' + SelectName).prepend(new Option(""));
        $('#' + SelectName).val("");
    });
}

// 根据类型加载系统中定义的流程
function LoadWorkFlowByType(SelectName, Type) {
    $.post("\\Sample\\GetWorkFlowDefinitionList", {
        Type: Type
    }, function (data) {
        $('#' + SelectName).empty(); // 清除现有项
        for (var i = 0; i < data.length; i++) {
            $('#' + SelectName).append(new Option(data[i].name, data[i].id));
        }
    });
}

// 上传本地生成的PDF文件
function SendToPDF(file) {
    var formData = new FormData();
    formData.append('file', file);

    formData.append("Domain", "Sample"); // 上传文件时附加的参数
    formData.append("DomainId", $('#RecordSheet-SampleId').html());
    formData.append("CreateById", "1");
    formData.append("CreateByName", "SYSADM");

    $.ajax({
        url: '/Common/UploadFileSave',
        type: 'POST',
        data: formData,
        async: true,
        cache: false,
        processData: false,// 告诉jQuery不要去处理发送的数据
        contentType: false,// 告诉jQuery不要去设置Content-Type请求头
        success: function (data) {
            if (data.indexOf("成功") >= 0) {
                alert("电子记录单已保存！");
            } else {
                alert(data);
            }
        },
        error: function (returndata) {
            //alert(returndata);
        }
    });

}

// 转换生成的PDF文件为base64数据，用来上传文件
function convertBase64ToFile(urlData, filename) {
    var arr = urlData.split('base64,')[1];
    var fileExt = 'pdf';
    var bstr = atob(arr);
    var n = bstr.length;
    var u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], filename + "." + fileExt, {});
}

// 直接查看 txt/csv 内容，目前应用于设备上传的数据文件查看
function DownloadFile(FileId) {
    $.post("/Common/postDownloadFile", {
        downloadFileId: FileId
    }, function (data) {
        alert(data);
    });
}

// 获得下载文件时的类型
function getMIMEType(fileName) {
    var arr = fileName.split('.');

    if (arr[1] == 'docx')
        return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
    else if (arr[1] == 'pdf')
        return "application/vnd.pdf";
    else if (arr[1] == 'JPG')
        return "image/jpg";
    else if (arr[1] == 'txt')
        return "txt";
    else if (arr[1] == 'csv')
        return "text/csv";
    else if (arr[1] == 'xlsx')
        return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    else
        return null;
}

// 根据参数名称，获得传递到页面上的参数值
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg);  //匹配目标参数

    if (r != null) {
        return decodeURI(r[2]); //unescape(r[2]);
    }

    return null; //返回参数值
}

// *********************************************************  表格操作  ************************************************

// Bootstrap 表格加载成功后，设置显示样式
function SetBootstrapStyle() {
    $('.fixed-table-toolbar').css("height", "0px"); /* 隐藏表格上的工具栏 */
    $('th label').css("margin-bottom", "0px"); // 设置标题行选择控件的样式
    $('td label').css("margin-bottom", "0px"); // 设置数据行选择控件的样式
    $('.pagination-info').addClass("font-rfs"); // 分页信息文本应用自适应字体
    $('.page-list').addClass("font-rfs"); // 每页显示多少条记录的文本
    $('.page-size').addClass("font-rfs"); // 显示每页数目的文本
    $('.dropdown-item').addClass("font-rfs"); // 选择项文本
}

// 获得表格中被选择记录的Ids，该函数针对的是设置选择列的表格
function GetSelectItems(TableName) {
    var rows = $('#' + TableName).bootstrapTable('getSelections');
    if (rows[0] == null || rows[0].id == TableName) {
        return null;
    } else {
        var arrays = new Array();
        $(rows).each(function () {
            arrays.push(this.id);
        })

        var ids = arrays.join(',');
        return ids;
    }
}

// 根据表格中被选择行的颜色，获取Ids
function GetSelectIdByColor(TableName) {
    var rows = $('#' + TableName).find("tbody").find("tr");
    var arrays = new Array();
    $(rows).each(function () {
        if ($(this).hasClass('changeblueColor')) {
            arrays.push($(this).attr('data-uniqueid'));
        }
    })

    var ids = arrays.join(',');
    return ids;
}
